package utils

import (
	"io"
	"os"
	"path"
)

func CopyFile(src io.ReadCloser, target string) error {
	defer src.Close()
	dir := path.Dir(target)
	if err := Mkdir(dir); err != nil {
		return err
	}
	dst, err := os.OpenFile(target, os.O_WRONLY|os.O_CREATE, 0644)
	if err != nil {
		return err
	}
	defer dst.Close()
	if _, err := io.Copy(dst, src); err != nil {
		return err
	}
	return nil
}

func Abs(dir string) string {
	if path.IsAbs(dir) {
		return dir
	} else {
		currentPath, _ := os.Getwd()
		return path.Join(currentPath, dir)
	}
}

//调用os.MkdirAll递归创建文件夹
func Mkdir(dir string) error {
	if !IsExist(dir) {
		err := os.MkdirAll(dir, os.ModePerm)
		return err
	}
	return nil
}

// 判断所给路径文件/文件夹是否存在(返回true是存在)
func IsExist(path string) bool {
	_, err := os.Stat(path) //os.Stat获取文件信息
	if err != nil {
		if os.IsExist(err) {
			return true
		}
		return false
	}
	return true
}
